﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;
using System.Windows.Forms;

namespace Arthus
{
    class FIN
    {
        MySqlConnection konekcija;
        MySqlCommand komanda = new MySqlCommand();
        MySqlDataReader datareader = null;
        MySqlDataAdapter adapter = null;
        DataSet dataset = null;
        DataTable dataTable = null;

        FIN finObjekat = null;
        VrstaNaloga vrstaNalogaObjekat = null;
        Preduzece preduzeceObjekat = null;
        Partneri partnerObjekat = null;
        Posjed posjedObjekat = null;
        FST fstObjekat = null;
        Konto kontoObjekat = null;

        public String VratiOznakuNaOsnovuID(int idFIN)
        {
            String rezultat = "";
            try
            {
                //konekcija sa bazom i punjenje dataset-a
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandText = "SELECT FINOZN FROM FIN WHERE FINID=" + idFIN + ";";
                datareader = komanda.ExecuteReader();
                while (datareader.Read())
                {
                    rezultat = datareader.GetValue(0).ToString();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                datareader.Close();
                konekcija.Close();
            }
            return rezultat;
        } //vraca oznaku fin-a na osnovu unetog id-a

        public void ZaDatumKnjizenjaPopuniGridView(String pocetni, String krajnji, DataGridView dataGridViewZaDatumKnjizenja)
        { //metoda koja puni dataGridViewZaDatumKnjizenja podacima iz baze

            try
            {
                //ciscenje i spremanje datagridview-a
                dataGridViewZaDatumKnjizenja.DataSource = null;
                dataGridViewZaDatumKnjizenja.Rows.Clear();
                dataGridViewZaDatumKnjizenja.Refresh();

                //konekcija sa bazom i punjenje datatable-a
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                komanda = new MySqlCommand();
                komanda.Connection = konekcija;
                komanda.CommandText = "SELECT FINID, FINIIM, DATE_FORMAT(FINDKN, '%d.%m.%Y.'), FINOZN, FINOPI, FINDUG-FINPOT, FINDUG, FINPOT FROM FIN" +
                " WHERE FINDKN BETWEEN '" + pocetni + "' AND '" + krajnji + "';";
                dataTable = new DataTable();
                adapter = new MySqlDataAdapter();
                adapter.SelectCommand = komanda;
                adapter.Fill(dataTable);

                adapter.Dispose();
                konekcija.Close();

                for (int i = 0; i < dataTable.Rows.Count; i++)
                {
                    dataGridViewZaDatumKnjizenja.Rows.Add(dataTable.Rows[i][0], dataTable.Rows[i][1], dataTable.Rows[i][2], dataTable.Rows[i][3], dataTable.Rows[i][4],
                        dataTable.Rows[i][5], dataTable.Rows[i][6], dataTable.Rows[i][7]);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                dataTable.Clear();
                adapter.Dispose();
                konekcija.Close();
            }
        } //metoda koja puni dataGridViewZaDatumKnjizenja podacima iz baze

        public int VratiPovecanID()
        {
            int rezultat = 0;
            try
            {
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT MAX(FINID) FROM FIN;";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                rezultat = Convert.ToInt32(datareader.GetValue(0));
                rezultat++;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                datareader.Close();
                konekcija.Close();
            }
            return rezultat;
        }    //metoda koja vraca povecan id za 1 

        public int VratiPovecanRedniBrojPremaVrstiDokumenta(String dokument, int godina)
        {
            int rezultat = 0;
            try
            {
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT IFNULL(MAX(FINBRO),0) FROM FIN WHERE FINVRS='" + dokument + "' AND FINGKN=" + godina + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                if (datareader.IsDBNull(0))
                {
                }
                else
                {
                    rezultat = Convert.ToInt32(datareader.GetValue(0));
                    rezultat++;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                datareader.Close();
                konekcija.Close();
            }
            return rezultat;
        } //metoda koja vraca povecan redni broj dokumenta a ako je prazno onda vraca 1(0+1)

        public int VratiPreduzeceIDNaOsnovuFINID(int finID)
        {
            int rezultat = 0;
            try
            {
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT FINPRE FROM FIN WHERE FINID=" + finID + " ;";
                datareader = komanda.ExecuteReader();
                while (datareader.Read())
                {
                    rezultat = Convert.ToInt32(datareader.GetValue(0));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                datareader.Close();
                konekcija.Close();
            }
            return rezultat;
        }

        public void UbacuUFIN(String preduzece, DateTimePicker datumKnjizenja, String vrstaNaloga, TextBox autoBrojDokumenta, TextBox opis, String opis2, TextBox duguje,
            TextBox potrazuje)
        {
            finObjekat = new FIN();
            preduzeceObjekat = new Preduzece();
            try
            {
                int AutoBrojDokumenta = 0;
                if (autoBrojDokumenta.Text.Length > 0)
                {
                    try
                    {
                        AutoBrojDokumenta = Convert.ToInt32(autoBrojDokumenta.Text);
                    }
                    catch (FormatException ex)
                    {
                        MessageBox.Show("Morate uneti broj!");
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!");
                    }
                }
                else
                {
                    AutoBrojDokumenta = finObjekat.VratiPovecanRedniBrojPremaVrstiDokumenta(vrstaNaloga, Convert.ToInt32(datumKnjizenja.Value.Date.ToString("yyyy")));
                }
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = string.Format("INSERT INTO FIN(FINID, FINDKN, FINVRS, FINOZN, FINOZX, FINOPI, FINBRO, FINPRE, FINWIB, FINGKN, FINDUG, FINPOT,"
                    + " FINIIM, FINIDT, FINKLJ) VALUES (" + finObjekat.VratiPovecanID() + ", '" + datumKnjizenja.Value.Date.ToString("yyyy-MM-dd") + "', '"
                    + vrstaNaloga + "', '"
                    + vrstaNaloga + "-" + AutoBrojDokumenta + "','"
                    + Convert.ToInt32(datumKnjizenja.Value.Date.ToString("yyyy")) + "-" + preduzeceObjekat.VratiIDPreduzecaNaOsnovuOznake(preduzece) + "-"
                    + vrstaNaloga + "-" + AutoBrojDokumenta + "', '"
                    + opis.Text + " " + opis2 + "', "
                    + AutoBrojDokumenta + ", "
                    + preduzeceObjekat.VratiIDPreduzecaNaOsnovuOznake(preduzece) + ", 0, " + Convert.ToInt32(datumKnjizenja.Value.Date.ToString("yyyy")) + ", "
                    + Convert.ToDecimal(duguje.Text) + ", " + Convert.ToDecimal(potrazuje.Text) + ", 'Agrovin', NOW(), 0)");
                int response = komanda.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                konekcija.Close();
            }
        }

        public void PunjenjeElemenataZaStampanjeDokumenta(TextBox preduzeceInformacije, TextBox informacijeONalogu, DataGridView stampanjeFinNaloga, int FINID, TextBox duguje,
            TextBox potrazuje, TextBox razlika)
        {
            if (FINID.ToString().Length > 0 && FINID != null && FINID != 0)
            {
                try
                {
                    preduzeceInformacije.Text = "";
                    finObjekat = new FIN();
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    komanda = new MySqlCommand();
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandType = CommandType.Text;
                    komanda.CommandText = "SELECT PREDUZECEOZN, PREDUZECEADR, PREDUZECEPBR, PREDUZECEMES, PREDUZECEPIB FROM PREDUZECA WHERE PREDUZECEID="
                        + finObjekat.VratiPreduzeceIDNaOsnovuFINID(FINID) + "";
                    datareader = komanda.ExecuteReader();
                    while (datareader.Read())
                    {
                        StringBuilder sb = new StringBuilder();
                        sb.AppendLine(datareader[0].ToString());
                        sb.AppendLine(datareader[1].ToString());
                        sb.AppendLine(datareader[2].ToString() + " " + datareader[3].ToString());
                        sb.AppendLine("PIB: " + datareader[4].ToString());
                        preduzeceInformacije.Text += sb.ToString();
                    }
                    datareader.Close();
                    konekcija.Close();

                    informacijeONalogu.Text = "";
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandType = CommandType.Text;
                    komanda.CommandText = "SELECT FINOZN, DATE_FORMAT(FINDKN,'%d.%m.%Y'), FINOPI FROM FIN WHERE FINID=" + FINID + "";
                    datareader = komanda.ExecuteReader();
                    while (datareader.Read())
                    {
                        StringBuilder sb2 = new StringBuilder();
                        sb2.AppendLine("Finansijski nalog");
                        sb2.AppendLine("Broj: " + datareader[0].ToString() + " od " + datareader[1].ToString());
                        sb2.AppendLine(datareader[2].ToString());
                        informacijeONalogu.Text += sb2.ToString();
                    }
                    datareader.Close();
                    konekcija.Close();


                    //ciscenje i spremanje datagridview-a
                    stampanjeFinNaloga.DataSource = null;
                    stampanjeFinNaloga.Rows.Clear();
                    stampanjeFinNaloga.Refresh();

                    //konekcija sa bazom i punjenje datatable-a
                    partnerObjekat = new Partneri();
                    posjedObjekat = new Posjed();
                    kontoObjekat = new Konto();
                    int rb = 1;
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandText = "SELECT FSTKON, FSTPAR, FSTPJE, FSTDOK, DATE_FORMAT(FSTDDO,'%d.%m.%Y'), DATE_FORMAT(FSTDPO,'%d.%m.%Y'), "
                        + " DATE_FORMAT(FSTDSP,'%d.%m.%Y'), FSTDUG, FSTPOT FROM FST WHERE FSTFIN=" + FINID + ";";
                    dataTable = new DataTable();
                    adapter = new MySqlDataAdapter();
                    adapter.SelectCommand = komanda;
                    adapter.Fill(dataTable);

                    adapter.Dispose();
                    konekcija.Close();

                    for (int i = 0; i < dataTable.Rows.Count; i++)
                    {
                        stampanjeFinNaloga.Rows.Add(rb, dataTable.Rows[i][0] + " " + kontoObjekat.VratiNazivKontaNaOsnovuOznake((String)dataTable.Rows[i][0]) + " " + partnerObjekat.VratiOznakuPartneraNaOsnovuID((int)dataTable.Rows[i][1]),
                            posjedObjekat.VratiOznakuPosjedaNaOsnovuID((int)dataTable.Rows[i][2]), dataTable.Rows[i][3], dataTable.Rows[i][4],
                            dataTable.Rows[i][5] + " " + dataTable.Rows[i][6], dataTable.Rows[i][7], dataTable.Rows[i][8]);
                        rb++;
                    }
                    fstObjekat = new FST();
                    stampanjeFinNaloga.Rows.Add("", "", "", "", "UKUPNO:", "", fstObjekat.vratiDugujeNaOsnovuFINID(FINID), fstObjekat.vratiPotrazujeNaOsnovuFINID(FINID));
                    stampanjeFinNaloga.Rows.Add();
                    stampanjeFinNaloga.Rows.Add("", "", "", "", "", "", "Odgovorno", "lice");
                    duguje.Text = "" + fstObjekat.vratiDugujeNaOsnovuFINID(FINID);
                    potrazuje.Text = "" + fstObjekat.vratiPotrazujeNaOsnovuFINID(FINID);
                    decimal Razlika = Convert.ToDecimal(duguje.Text) - Convert.ToDecimal(potrazuje.Text);
                    razlika.Text = "" + Razlika;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    dataTable.Clear();
                    adapter.Dispose();
                    konekcija.Close();
                }
            }
        }

        public void ObrisiFinPremaID(int finID)
        {
            try
            {
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "DELETE FROM FIN WHERE FINID=" + finID + ";";
                komanda.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                konekcija.Close();
            }
        }

        public void PopuniKontroleUknjizenjeNalogaForma(String FINid, ComboBox preduzece, DateTimePicker datumKnjizenja, ComboBox vrstaNaloga, TextBox autoBrojDokumenta,
            TextBox opis)
        {
            if (FINid.Length > 0)
            {
                try
                {
                    preduzeceObjekat = new Preduzece();
                    vrstaNalogaObjekat = new VrstaNaloga();
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandText = "SELECT FINPRE, FINDKN, FINVRS, FINBRO, FINOPI FROM FIN WHERE FINID=" + Convert.ToDecimal(FINid) + "";
                    datareader = komanda.ExecuteReader();
                    while (datareader.Read())
                    {
                        preduzece.SelectedIndex = preduzece.Items.IndexOf(preduzeceObjekat.VratiOznakuPreduzecaNaOsnovuID(Convert.ToInt32(datareader["FINPRE"].ToString())));
                        datumKnjizenja.Text = datareader["FINDKN"].ToString();
                        vrstaNaloga.SelectedIndex = vrstaNaloga.Items.IndexOf(datareader["FINVRS"].ToString() + " ("
                            + vrstaNalogaObjekat.VratiNazivVrsteNalogaNaOsnovuOznakeVrsteNaloga(datareader["FINVRS"].ToString()) + ")");
                        autoBrojDokumenta.Text = datareader["FINBRO"].ToString();
                        opis.Text = datareader["FINOPI"].ToString();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    datareader.Close();
                    konekcija.Close();
                }

            }
        }

        public void PromeniDugujeIPotrazujePremaID(int finID, decimal duguje, decimal potrazuje)
        {
            try
            {
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = string.Format("UPDATE FIN SET FINDUG=" + duguje + ", FINPOT=" + potrazuje + " WHERE FINID=" + finID + "");
                int response = komanda.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                konekcija.Close();
            }
        }

        public String[] PopuniPodatkeZaFINnalogPojedinacno(int finID)
        {
            String[] rezultat = new String[4];
            try
            {
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT FINOZN, DATE_FORMAT(FINDKN,'%d.%m.%Y.'), FINOPI FROM FIN WHERE FINID=" + finID + ";";
                datareader = komanda.ExecuteReader();
                while (datareader.Read())
                {
                    rezultat[0] = "*****";
                    rezultat[1] = datareader["FINOZN"].ToString();
                    rezultat[2] = datareader[1].ToString();
                    rezultat[3] = datareader[2].ToString();

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                datareader.Close();
                konekcija.Close();
            }
            return rezultat;
        }

        public int[] nizFINovaZaStampanjeViseFINnaloga(DateTimePicker odDatuma, DateTimePicker doDatuma, CheckedListBox vrsteNaloga)
        {
            int[] rezultat = null;
            try
            {
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                dataTable = new DataTable();
                adapter = new MySqlDataAdapter();
                for (int j = 0; j < vrsteNaloga.CheckedItems.Count; j++)
                {
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandType = CommandType.Text;
                    komanda.CommandText = "SELECT FINID FROM FIN WHERE FINVRS='"
                        + Razno.IseciStringDoIzabranogChara(vrsteNaloga.CheckedItems[j].ToString(), ' ') + "' AND FINDKN BETWEEN '"
                        + odDatuma.Value.Date.ToString("yyyy-MM-dd") + "' AND '" + doDatuma.Value.Date.ToString("yyyy-MM-dd") + "';";
                    adapter.SelectCommand = komanda;
                    adapter.Fill(dataTable);
                    adapter.Dispose();
                    konekcija.Close();
                }
                rezultat = new int[dataTable.Rows.Count];
                for (int i = 0; i < dataTable.Rows.Count; i++)
                {
                    rezultat[i] = Convert.ToInt32(dataTable.Rows[i][0].ToString());
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                dataTable.Dispose();
                //konekcija.Close();
            }
            return rezultat;
        }

        public void PunjenjeElemenataZaStampanjeDokumentaViseFINNaloga(TextBox preduzeceInformacije, TextBox informacijeONalogu, DataGridView stampanjeFinNaloga, int[] finNalozi, 
            String odDatuma, String doDatuma, String[] vrsteNaloga)
        {
            if (finNalozi.Count() > 0)
            {
                try
                {
                    preduzeceInformacije.Text = "";
                    finObjekat = new FIN();
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    komanda = new MySqlCommand();
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandType = CommandType.Text;
                    komanda.CommandText = "SELECT PREDUZECEOZN, PREDUZECEADR, PREDUZECEPBR, PREDUZECEMES, PREDUZECEPIB FROM PREDUZECA WHERE PREDUZECEID="
                        + finObjekat.VratiPreduzeceIDNaOsnovuFINID(finNalozi[0]) + "";
                    datareader = komanda.ExecuteReader();
                    while (datareader.Read())
                    {
                        StringBuilder sb = new StringBuilder();
                        sb.AppendLine(datareader[0].ToString());
                        sb.AppendLine(datareader[1].ToString());
                        sb.AppendLine(datareader[2].ToString() + " " + datareader[3].ToString());
                        sb.AppendLine("PIB: " + datareader[4].ToString());
                        preduzeceInformacije.Text += sb.ToString();
                    }
                    datareader.Close();
                    konekcija.Close();

                    informacijeONalogu.Text = "";
                    StringBuilder sb2 = new StringBuilder();
                    sb2.AppendLine("Grupa finansijskih naloga: ");
                    sb2.AppendLine("U periodu: " + odDatuma + " od " + doDatuma);
                    String vNaloga = "";
                    foreach (String s in vrsteNaloga)
                    {
                        vNaloga += s + ", ";
                    }
                    String vrsteN = vNaloga.Substring(0, vNaloga.Length - 2);
                    sb2.AppendLine("Vrste naloga: " + vrsteN);
                    informacijeONalogu.Text += sb2.ToString();

                    //ciscenje i spremanje datagridview-a
                    stampanjeFinNaloga.DataSource = null;
                    stampanjeFinNaloga.Rows.Clear();
                    stampanjeFinNaloga.Refresh();

                    //konekcija sa bazom i punjenje datatable-a
                    partnerObjekat = new Partneri();
                    posjedObjekat = new Posjed();
                    kontoObjekat = new Konto();
                    finObjekat=new FIN();
                    foreach (int fin in finNalozi)
                    {
                        int rb = 1;
                        konekcija.Open();
                        komanda.Connection = konekcija;
                        komanda.CommandText = "SELECT FSTKON, FSTPAR, FSTPJE, FSTDOK, DATE_FORMAT(FSTDDO,'%d.%m.%Y'), FSTDPO, FSTVAL, FSTDUG, FSTPOT FROM FST WHERE FSTFIN="
                            + fin + ";";
                        dataTable = new DataTable();
                        adapter = new MySqlDataAdapter();
                        adapter.SelectCommand = komanda;
                        adapter.Fill(dataTable);

                        adapter.Dispose();
                        konekcija.Close();

                        stampanjeFinNaloga.Rows.Add("", "", "", "", finObjekat.PopuniPodatkeZaFINnalogPojedinacno(fin)[0],
                            finObjekat.PopuniPodatkeZaFINnalogPojedinacno(fin)[1] + "      od ", finObjekat.PopuniPodatkeZaFINnalogPojedinacno(fin)[2] + " - ", 
                            finObjekat.PopuniPodatkeZaFINnalogPojedinacno(fin)[3]);  
                        for (int i = 0; i < dataTable.Rows.Count; i++)
                        {
                            stampanjeFinNaloga.Rows.Add(rb, dataTable.Rows[i][0] + " " + kontoObjekat.VratiNazivKontaNaOsnovuOznake((String)dataTable.Rows[i][0]) + " " + partnerObjekat.VratiOznakuPartneraNaOsnovuID((int)dataTable.Rows[i][1]),
                                posjedObjekat.VratiOznakuPosjedaNaOsnovuID((int)dataTable.Rows[i][2]), dataTable.Rows[i][3], dataTable.Rows[i][4],
                                dataTable.Rows[i][5] + " " + dataTable.Rows[i][6], dataTable.Rows[i][7], dataTable.Rows[i][8]);
                            rb++;
                        }
                        fstObjekat = new FST();
                        stampanjeFinNaloga.Rows.Add("", "", "", "", "UKUPNO:", "", fstObjekat.vratiDugujeNaOsnovuFINID(fin), fstObjekat.vratiPotrazujeNaOsnovuFINID(fin));
                        stampanjeFinNaloga.Rows.Add();
                    }
                    stampanjeFinNaloga.Rows.Add();
                    stampanjeFinNaloga.Rows.Add("", "", "", "", "", "Odgovorno", "lice", "");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    dataTable.Clear();
                    adapter.Dispose();
                    konekcija.Close();
                }
            }
        }
    }
}
